
package _7;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings("serial")
public class Empresa implements Serializable{
    private static int ult_id=0;
    private int id;
    private String nome;
    private String n_contr;
    private String sede;
    private List<String> nums_tel=new ArrayList<String>();

    public Empresa(String n, String c, String s){
        id=++ult_id;
        nome=n;
        n_contr=c;
        sede=s;
    }

    boolean adiciona_num(String n){
    	if(n==null)
    		return false;
    	
        if(nums_tel.contains(n))
            return false;
    	
        int i;
        
        if(n.charAt(0)=='+'){
        	if(n.length() < 11 || n.length()>13)
        		return false;
        	
        	i=1;
        }else{
        	if(n.length() != 9)
        		return false;
        	
        	i=0;
        }
        
        for(; i<n.length(); i++){
    		if(!(n.charAt(i)>='0' && n.charAt(i)<='9'))
    			return false;
    		
    	}
        
        return nums_tel.add(n);
    }

    public int getId() {
        return id;
    }

    public String getN_contr() {
        return n_contr;
    }

    public void setN_contr(String n_contr) {
        this.n_contr = n_contr;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public List<String> getNums_tel() {
        return nums_tel;
    }

    public void setNums_tel(List<String> nums_tel) {
        this.nums_tel = nums_tel;
    }

    public String getSede() {
        return sede;
    }

    public void setSede(String sede) {
        this.sede = sede;
    }

    public static int getUlt_id() {
        return ult_id;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Empresa other = (Empresa) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 97 * hash + this.id;
        return hash;
    }

    @Override
    public String toString(){
        String str= new String();

        str= id + " - Nome: " + nome + " No. Contribuinte: " + n_contr + " Sede: " + sede + "\nNums. Telefone: \n";

        if(nums_tel.size()==0){
            str+="Não há números de telefone!\n";
            return str;
        }

        for(int i=0; i<nums_tel.size(); i++){
            str+= "-> " + nums_tel.get(i) + "\n";
        }

        return str;
    }
}
